home *** CD-ROM | disk | FTP | other *** search
/ Complete Linux / Complete Linux.iso / docs / apps / database / ingres04.lzh / source / decomp / mklist.c < prev    next >
Encoding:
C/C++ Source or Header  |  1985-01-23  |  657 b   |  43 lines

  1. # include    <ingres.h>
  2. # include    <aux.h>
  3. # include    <tree.h>
  4. # include    <symbol.h>
  5. # include    "globs.h"
  6. # include    <sccs.h>
  7.  
  8. SCCSID(@(#)mklist.c    8.1    12/31/84)
  9.  
  10. /*
  11. **  MKLIST
  12. **
  13. **    writes a list of query tree nodes in "OVQP order" --
  14. **    that is, everything in postfix (endorder) except AND's and OR's
  15. **    infixed (postorder) to OVQP.
  16. **    called by call_ovqp().
  17. */
  18.  
  19.  
  20.  
  21. mklist(tree)
  22. QTREE *tree;
  23. {
  24.     register int    typ;
  25.     register QTREE     *t;
  26.     register int     andor;
  27.  
  28.     t = tree;
  29.     if (!t || (typ=t->sym.type)==TREE || typ==QLEND) 
  30.         return;
  31.  
  32.     andor=0;
  33.     mklist(t->left);
  34.     if (typ==AND || typ==OR)
  35.     {
  36.         andor = 1;
  37.         ovqpnod(t);
  38.     }
  39.     mklist(t->right);
  40.     if (!andor)
  41.         ovqpnod(t);
  42. }
  43.